<?php
/*
 *  пїЅ&nbsp;Р°Р±РѕС‚С‡Р°СЏ РЅРѕ РЅРµРґРѕРґРµР»Р°РЅРЅР°СЏ РІРµСЂСЃРёСЏ РєР»Р°СЃСЃР° РґР»СЏ СЂР°Р±РѕС‚С‹ СЃ С„РѕС‚РѕРіР°Р»РµСЂРµР№ 
 *  
 *  СЂР°Р·РјРµС‰Р°РµС‚ РєР°СЂС‚РёРЅРєРё РІ РґРёСЂСЂРµРєС‚РѕСЂРёСЏС… РїРѕ РїР°РїРєР°Рј РІ Р·Р°РІРёСЃРёРјРѕСЃС‚Рё РѕС‚ СЂР°Р·РјРµСЂР°, РєРѕС‚РѕСЂС‹Рµ РЅР°Р·С‹РІР°СЋС‚СЃСЏ РїСЂРµС„РёРєСЃР°РјРё 
 *  СѓРјРµРµС‚ РґРµР»Р°С‚СЊ РіР»Р°РІРЅСѓСЋ РєР°СЂС‚РёРЅРєСѓ
 */
 class App_Album {
     public $path = '/images/product/';   // - РїСѓС‚СЊ РґРѕ РїР°РїРєРё СЃ РіР°Р»РµСЂРµРµР№ 
     public $fullPath;
     public $id;                                 // id РёС‚РµРјР° Рє РєРѕС‚РѕСЂРѕРјСѓ РїСЂРёРІСЏР·Р°РЅРЅР° РіР°Р»РµСЂРµСЏ
     protected $_image;       // СЌРєР·РµРјРїР»СЏСЂ РєР»Р°СЃСЃР° РєР°СЂС‚РёРЅРѕРє СЃ РєРѕС‚РѕСЂС‹РјРё СЂР°Р±РѕС‚Р°РµРј 
     public function __construct($id)
     {
         
          $this->id = $id;
          
          $this->fullPath = $_SERVER['DOCUMENT_ROOT'].$this->path;
          $this->setPath($this->path.$this->id.'/');
          if(!file_exists($this->fullPath)){
               mkdir($this->fullPath, 0777);
          }
          $this->_image = new App_Image();
            
     }
     
     public function upload()
     {
         Zend_Debug::dump($this->path);
          $this->_image->setUploadPath($this->path);
          return $this->_image->upload();
     }
     
     // РІРѕРІР·РІСЂР°С‰Р°РµС‚ РјР°СЃСЃРёРІ РїСѓС‚РµР№ Рє РєР°СЂС‚РёРЅРєР°Рј РІС…РѕРґСЏС‰РёР№ РїР°СЂР°РјРµС‚СЂ РїСЂРµС„РёРєСЃ РїР°РїРєРё 
     public function getImages($prefix = null)
     {
          $images  = array();
          if(!file_exists($this->fullPath.$prefix.'/')){
               mkdir($this->fullPath.$prefix.'/', 0777);
          }
          foreach(scandir($this->fullPath.$prefix.'/' ) as $file){
               if($file != '.' && $file!='..')
               {
                    array_push($images, $this->path.$prefix.'/'.$file);
               }
          }
      /*    if($this->getMainImage($prefix)){
               array_push($images , $this->getMainImage($prefix));
          }*/
          return array_reverse($images);
     }
     
     
     // РІРѕР·РІСЂР°С‰Р°РµС‚ РіР»Р°РІРЅСѓСЋ РєР°СЂС‚РёРЅРєСѓ РїРѕ РїСЂРµС„РёРєСЃР°Рј 
     public function getMainImage($prefix)
     {
          if(!file_exists($this->fullPath.'main/')){
               mkdir($this->fullPath.'main/', 0777);
          }
          if(!file_exists($this->fullPath.'main/'. $prefix.'/'))
          {
               mkdir($this->fullPath.'main/'. $prefix.'/', 0777);
          
          }
          foreach(scandir($this->fullPath.'main/'. $prefix.'/') as $file){
               if($file != '.' && $file!='..'){
                    return $this->path.'main/'. $prefix .'/'.$file;
               }
          }
          return null;
     }
     
     // СѓСЃС‚Р°РЅР°РІР»РёРІР°РµС‚ РєР°СЂС‚РёРЅРєСѓ РіР»Р°РІРЅРѕР№ РІС…РѕРґСЏС‰РёР№ РїР°СЂР°РјРµС‚СЂ РїСѓС‚СЊ РґРѕ РЅРµС‘ 
     public function setMainImage($path)
     {
          $pathArray  = explode('/', $path);
          $image =  $pathArray[count($pathArray) - 1];
          $mainFolder = $this->fullPath.'main/';
          if(!file_exists($mainFolder))
          {     
               mkdir($mainFolder,0777);
          }
          
          foreach ($this->_image->prefixs as $prefix => $size)
          {
               if(!file_exists($mainFolder.$prefix.'/'))
               {
                    mkdir($mainFolder.$prefix.'/',0777);
               }
               foreach(scandir($mainFolder.$prefix.'/') as $file)
               {
                  
                    if($file != '.' && $file!='..')
                    {
                         @copy($mainFolder.$prefix.'/'.$file, $this->fullPath.$prefix.'/'.$file);
                         @unlink($mainFolder.$prefix.'/'.$file);
                    }
               }
              
               @copy($this->fullPath.$prefix.'/'.$image, $mainFolder.$prefix.'/'.$image);
               @unlink($this->fullPath.$prefix.'/'.$image);
          }
     }
     
     // СѓСЃС‚Р°РЅРѕРІРёС‚СЊ РїСѓС‚СЊ РґРѕ РїР°РїРєРё СЃ Р°Р»СЊР±РѕРјРѕРј
     public function setPath($path)
     {
          $this->path  = $path;

          $this->fullPath = $_SERVER['DOCUMENT_ROOT'].$this->path;
     }
     // СЏРІР»СЏРµС‚СЃСЏ Р»Рё РєР°СЂС‚РёРЅРєР° РіР»Р°РІРЅРѕР№ РІС…РѕРґСЏС‰РёР№ РїР°СЂР°РјРµС‚СЂ - РїСѓС‚СЊ 
     public function isMain($path)
     {
          $pathArray = explode('/' , $path);
          foreach ($pathArray as $dir)
          {
               if($dir == 'main'){
                    return true;
               }
          }
          return false;
     }
     
     
     // СѓРґР°Р»РёС‚СЊ РєР°СЂС‚РёРЅРєСѓ 
     public function delete($path)
     {
          @unlink($_SERVER['DOCUMENT_ROOT']. $path);
     }
     
     public function setImage(ZloY_Image  $image)
     {
     	$this->_image = $image;
     }
     
     public function getBigImage($path,$prefix)
     {
         $explodedPath = explode('/', $path);
         foreach($explodedPath as $key => $value){
             if(strlen($value) == 1){
                 $explodedPath[$key] = $prefix;
             }
         }
          return implode('/',$explodedPath);
     }
     
     public function copy($image,$pref = null)
     {
        $this->_image->setUploadPath($this->path);
        $this->_image->copy($image, $pref);
        $images = $this->getImages('s');
        return $images;
     }
     
     public function deleteAll()
     {
         foreach ($this->_image->prefixs as $key => $value){
            foreach($this->getImages($key) as $image){
                $this->delete($image);
            }
            $this->delete($this->getMainImage($key));
         }

     }
}